import { createApp } from 'vue'
import App from './App.vue'
import axios from 'axios'
import HYRequest from './service'

// http://123.207.32.32:8000/home/multidata
const app = createApp(App)
app.mount('#app')
console.log("hello world")

// 1. 发送request请求
// axios.request({
//   url: 'http://123.207.32.32:8000/home/multidata',// 默认是get请求
//   method: 'GET',
// }).then(res => {
//   console.log(res.data)
// })


// 2. 发送get请求
// axios.get('https://reqres.in/api/users', {
//   params: { page: 2 }
// }).then(response => {
//     console.log('用户列表:', response.data);
// }).catch(error => {
//     console.error('请求失败:', error);
// });

// 发送 GET 请求
// axios.get('http://123.207.32.32:9001/lyric', {
//   params: { id: 500665346 }
// }).then(response => {
//   console.log('用户列表:', response.data);
// }).catch(error => {
//   console.error('请求失败:', error);
// });

// 发送 POST 请求
// axios.post('http://123.207.32.32:1888/02_param/postjson', {
//   name: 'coderwhy',
//   password: '123456'
// }).then(response => {
//   console.log('登录成功:', response.data);
// }).catch(error => {
//   console.error('登录失败:', error);
// })

// axios.post('http://123.207.32.32:1888/02_param/postjson', {
//   data: {
//     name: 'coderwhy',
//     password: '123456'
//   }
// }).then(response => {
//   console.log('登录成功:', response.data);
// }).catch(error => {
//   console.error('登录失败:', error);
// })

// axios配置公共默认认值
// baseURL: http://123.207.32.32:8000/
// const baseURL = 'http://123.207.32.32:8000'
// axios.defaults.baseURL = baseURL
// axios.defaults.timeout = 5000
// axios.defaults.headers['X-Request-Type'] = 'XMLHttpRequest'
// 1. get请求 http://123.207.32.32:8000/home/multidata
// axios.get('/home/multidata').then(res => {
//   console.log(res.data.data)
// })
// 2. get请求 http://123.207.32.32:8000/home/data

// 3. 发送多个请求
// 源码的本质是:promise.all
// axios.all([
//   axios.get('/home/multidata'),
//   axios.get('/home/data')
// ]).then(res => {
//   console.log(res[0].data.data)
//   console.log(res[1].data.data)
// }).catch(err => {
//   console.log(err)
// })

// 创建axios的实例
// axios默认提供的实例对象
// axios.get('http://123.207.32.32:8000/home/multidata')
  
// 创建其他实例对象发送网络请求
// const instance1 = axios.create({
//   baseURL: 'http://123.207.32.32:8000',
//   timeout: 5000
// })

// instance1.get('/home/multidata').then(res => {
//   console.log(res.data.data)
// })
  
// const instance2 = axios.create({
//   baseURL: 'http://123.207.32.32:9001',
//   timeout: 5000
// })

// instance2.get('/lyric', {
//   params: { id: 500665346 }
// }
// ).then(res => {
//   console.log(res.data.lrc.lyric)
// }).catch(err => {
//   console.log(err)
// })

// 拦截器
// 请求拦截器
// 请求成功的拦截,请求失败的拦截
// axios.interceptors.request.use((config) => { // 请求成功
  // 1. 开始loading的动画
  // 2. 对原来的配置进行修改
  // 2.1 认证登录,token/cookie, 添加token
  // 2.2 修改请求头
  // 2.3 请求参数进行转换
//   if (config.url !== '/login') {
//     config.headers['token'] = 'coderwhy' // 修改headers
//     console.log('请求成功拦截')
//   }
//   return config
// }, (err) => { // 请求失败
//   console.log('请求失败拦截')
//   return err
// }
// )
// 响应拦截器
// axios.interceptors.response.use((res) => {
  // 结束loading的动画
  // 1. 对响应的数据进行处理
//   if (res.data.code !== 200) {
//     console.log('响应成功拦截')
//   }
//   return res.data
// }, (err) => {
//   console.log('响应失败拦截')
//   return err
// }
// )

// axios.get('http://123.207.32.32:8000/home/multidata').then(res => {
//   console.log(res.data.data)
// }).catch(err => {
//   console.log(err)
// })

// 使用自定义的request
// 通用baseURL
HYRequest.hyRequestBaseUrl.request({
  url: '/home/multidata',
  method: 'GET',
}).then(res => {
  console.log(res.data)
}).catch(err => {
  console.log(err)
})
// 不需要BaseURL
HYRequest.hyRequest.get({
  url: 'http://123.207.32.32:9001/lyri',
  params: {
    id: '123',
  }
}).then(res => {
  console.log(res.data)
}).catch(err => {
  console.log(err)
})
// 需要baseURL
HYRequest.hyRequest.post({
  url: 'http://123.207.32.32:1888/02_param/postjson',
  data: {
    name: 'coderwhy',
    password: '123456'
  }
}).then(res => {
  console.log(res.data)
}).catch(err => {
  console.log(err)
})





